package com.study.spark.scala.chapter05

object Scala10_Function_Practice_Map {
  def main(args: Array[String]): Unit = {
    // TODO 高阶函数应用案列 集合数据的map运算，对集合中每一个元素进行操作，返回一个新集合

    val mapArray = Array(1, 2, 3, 4, 5)

    def mapFunction(map: Array[Int],fun: (Int=>Int)):Array[Int]={
      for (e <- map) yield fun(e)
    }

    def addFun(e : Int): Int ={
      e+1
    }

    println(mapFunction(mapArray, addFun).mkString(","))//2,3,4,5,6

    // 也可以使用匿名函数，实现数组元素翻倍
    println(mapFunction(mapArray, e => e * 3).mkString(","))//3,6,9,12,15
    println(mapFunction(mapArray, _ * 2).mkString(","))//2,4,6,8,10
  }

}
